﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web;

namespace WebFatura
{
    public enum EvrakTipleri : byte
    {
        SatisFaturasi = 0,
        AlisFaturasi = 1,
        AlisIrsaliyesi = 2,
        DepoSevk = 3,
        GelenHavale = 4,
        GidenHavale = 5
    }

    public class Cari
    {
        public int ID { get; set; }
        public string Kodu { get; set; }
        public string Unvani { get; set; }
    }

    public class Stok
    {
        public int ID { get; set; }
        public string Kodu { get; set; }
        public string Adi { get; set; }
        public double Fiyat { get; set; }
        public string AnaGrupKodu { get; set; }
        public string AnaGrupAdi { get; set; }
        public string MarkaKodu { get; set; }
        public string MarkaAdi { get; set; }
        public int KdvID { get; set; }
        public double KdvOrani { get; set; }
        public string barkod { get; set; }
    }

    public class Line
    {
        public int ID { get; set; }
        public string Kodu { get; set; }
        public string Adi { get; set; }
        public double Fiyat { get; set; }
        public double Miktar { get; set; }
        public double Tutar { get; set; }
        public int KdvID { get; set; }
        public double KdvOrani { get; set; }
        public int sharID { get; set; }
    }

    public class EvrakOzet
    {
        public int ID { get; set; }
        public DateTime Tarih { get; set; }
        public string Seri { get; set; }
        public int Sira { get; set; }
        public double Meblag { get; set; }
    }

    public class Evrak
    {
        private List<HareketBilgileri> rows = new List<HareketBilgileri>();
        public DateTime Tarih { get; set; }
        public string BelgeNo { get; set; }
        public string Seri { get; set; }
        public int Sira { get; set; }
        public EvrakTipleri EvrakCinsi { get; set; }
        public string CariKodu { get; set; }
        public string SrmMerkezKodu { get; set; }
        public string PlasiyerKodu { get; set; }
        public string MikroKullanici { get; set; }
        public int GirisDepoNo { get; set; }
        public int CikisDepoNo { get; set; }
        public string Aciklama { get; set; }
        public List<HareketBilgileri> Rows { get { return rows; } }
        public string[] EvrakAciklamalari { get; set; }
    }
    public class HareketBilgileri
    {
        public int sharID { get; set; }
        public int stokID { get; set; }
        public int Satir { get; set; }
        public string StokKodu { get; set; }
        public string StokAdi { get; set; }
        public double Miktar { get; set; }
        public double Fiyat { get; set; }
        public double Isk1Tutar { get; set; }
        public double Isk2Tutar { get; set; }
        public double Isk3Tutar { get; set; }
        public double Isk4Tutar { get; set; }
        public double Isk5Tutar { get; set; }
        public double BurutTutar { get; set; }
        public int KdvSira { get; set; }
        public double KdvOrani { get; set; }
        public double KdvTutari { get; set; }
        public int SipDbcNo { get; set; }
        public int SipRecNo { get; set; }
        public int FaturaID { get; set; }
    }

    public class Mikro
    {
        string cnnString = ConfigurationManager.ConnectionStrings["DbCon"].ConnectionString;
        public Tuple<int, string> KullaniciGiris(string adi, string sifre)
        {
            int no = -1;
            string seri = "";
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("SELECT  User_no, User_LongName,User_special2 FROM         MikroDB_V14.dbo.KULLANICILAR WHERE     (User_special1 = @pwd) AND (User_name = @usr)", cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    cmd.Parameters.Add("@pwd", System.Data.SqlDbType.NVarChar, 4).Value = sifre;
                    cmd.Parameters.Add("@usr", System.Data.SqlDbType.NVarChar, 20).Value = adi;
                    SqlDataReader rd = cmd.ExecuteReader();
                    if (rd.HasRows)
                    {
                        if (rd.Read())
                        {
                            no = rd.GetInt32(0);
                            seri = rd.GetString(2);
                        }
                    }
                    rd.Close();
                }
                cn.Close();
            }
            return new Tuple<int, string>(no, seri);
        }

        public List<Cari> CariListe()
        {
            List<Cari> liste = new List<Cari>();
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("exec sp_executesql N'SELECT     cari_RECno,cari_kod AS kod, cari_unvan1 + '' '' + cari_unvan2 AS adi FROM         CARI_HESAPLAR where cari_grup_kodu=''01'' '", cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    SqlDataReader rd = cmd.ExecuteReader();
                    while (rd.Read())
                    {
                        Cari cr = new Cari();
                        cr.ID = rd.GetInt32(0);
                        cr.Kodu = rd.GetString(1);
                        cr.Unvani = rd.GetString(2);
                        liste.Add(cr);
                    }
                    rd.Close();
                }
                cn.Close();
            }
            return liste;
        }

        public List<EvrakOzet> FaturaListe(string carikod, string seri)
        {
            List<EvrakOzet> liste = new List<EvrakOzet>();
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("SELECT  cha_belge_tarih AS tarih, cha_evrakno_seri AS seri, cha_evrakno_sira AS sira, cha_meblag AS toplam,cha_RECno FROM         CARI_HESAP_HAREKETLERI WHERE     (cha_tip = 0) AND (cha_cinsi = 6) AND (cha_normal_Iade = 0) AND (cha_evrak_tip = 63) AND (cha_kod = @cari) AND (cha_evrakno_seri=@seri) and (cha_belge_tarih = @tarih)", cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    cmd.Parameters.Add("@cari", SqlDbType.NVarChar).Value = carikod;
                    cmd.Parameters.Add("@seri", SqlDbType.NVarChar).Value = seri;
                    cmd.Parameters.Add("@tarih", SqlDbType.DateTime).Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

                    SqlDataReader rd = cmd.ExecuteReader();
                    while (rd.Read())
                    {
                        EvrakOzet cr = new EvrakOzet();
                        cr.Tarih = rd.GetDateTime(0);
                        cr.Seri = rd.GetString(1);
                        cr.Sira = rd.GetInt32(2);
                        cr.Meblag = rd.GetDouble(3);
                        cr.ID = rd.GetInt32(4);

                        liste.Add(cr);
                    }
                    rd.Close();
                }
                cn.Close();
            }
            return liste;
        }
        public List<Stok> StokListe()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT     sto_RECno, sto_kod, sto_isim, dbo.fn_StokSatisFiyati(sto_kod, 1, 0) AS fiyat, sto_anagrup_kod AS anakod, ");
            sb.Append(" ISNULL((SELECT san_isim FROM STOK_ANA_GRUPLARI WHERE (san_kod = STOKLAR.sto_anagrup_kod)), '') AS anaadi, sto_marka_kodu AS markakod, ");
            sb.Append(" ISNULL((SELECT mrk_ismi FROM STOK_MARKALARI WHERE (mrk_kod = STOKLAR.sto_marka_kodu)), '') AS markaismi,sto_toptan_vergi as kdvid,dbo.fn_VergiYuzde(sto_toptan_vergi) as kdvoran, ");
            sb.Append(" isnull((SELECT TOP 1 bar_kodu  FROM BARKOD_TANIMLARI WHERE        (bar_stokkodu =STOKLAR.sto_kod)),'') as barkod ");
            sb.Append(" FROM STOKLAR WHERE (sto_RECno IN (SELECT     RecID_RECno FROM mye_ImageData WHERE (TableID = 13) AND (ImageID = 0))) ");

            List<Stok> stoklar = new List<Stok>();
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(sb.ToString(), cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    SqlDataReader rd = cmd.ExecuteReader();
                    while (rd.Read())
                    {
                        Stok st = new Stok();
                        st.Adi = Cevir.Parse<string>(rd["sto_isim"]);
                        st.Fiyat = Cevir.Parse<double>(rd["fiyat"]);
                        st.ID = Cevir.Parse<int>(rd["sto_RECno"]);
                        st.Kodu = Cevir.Parse<string>(rd["sto_kod"]);

                        st.AnaGrupKodu = Cevir.Parse<string>(rd["anakod"]);
                        st.AnaGrupAdi = Cevir.Parse<string>(rd["anaadi"]);
                        st.MarkaKodu = Cevir.Parse<string>(rd["markakod"]);
                        st.MarkaAdi = Cevir.Parse<string>(rd["markaismi"]);
                        st.KdvID = Cevir.Parse<int>(rd["kdvid"]);
                        st.KdvOrani = Cevir.Parse<double>(rd["kdvoran"]);
                        st.barkod = rd["barkod"].ToString();

                        stoklar.Add(st);
                    }
                }
                cn.Close();
            }
            return stoklar;
        }

        public byte[] SharEvrakTip(EvrakTipleri evrakTip)
        {
            byte[] sonuc = new byte[4];
            switch (evrakTip)
            {
                case EvrakTipleri.SatisFaturasi:
                    sonuc[0] = 1;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 4;
                    break;
                case EvrakTipleri.AlisFaturasi:
                    sonuc[0] = 0;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 3;
                    break;
                case EvrakTipleri.AlisIrsaliyesi:
                    sonuc[0] = 0;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 13;
                    break;
                case EvrakTipleri.DepoSevk:
                    sonuc[0] = 2;
                    sonuc[1] = 6;
                    sonuc[2] = 0;
                    sonuc[3] = 2;
                    break;
                default:
                    break;
            }
            return sonuc;
        }

        public byte[] CharEvrakTip(EvrakTipleri evrakTip)
        {
            byte[] sonuc = new byte[4];
            switch (evrakTip)
            {
                case EvrakTipleri.SatisFaturasi:
                    sonuc[0] = 0;
                    sonuc[1] = 6;
                    sonuc[2] = 0;
                    sonuc[3] = 63;
                    break;
                case EvrakTipleri.AlisFaturasi:
                    sonuc[0] = 1;
                    sonuc[1] = 6;
                    sonuc[2] = 0;
                    sonuc[3] = 0;
                    break;
                case EvrakTipleri.GelenHavale:
                    sonuc[0] = 1;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 34;
                    break;
                case EvrakTipleri.GidenHavale:
                    sonuc[0] = 0;
                    sonuc[1] = 0;
                    sonuc[2] = 0;
                    sonuc[3] = 35;
                    break;
            }
            return sonuc;
        }

        public int MaxEvrakNo(EvrakTipleri tip, String seri)
        {
            byte[] dizi;
            int sira = 1;
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("", cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    switch (tip)
                    {
                        case EvrakTipleri.SatisFaturasi:
                        case EvrakTipleri.GidenHavale:
                        case EvrakTipleri.GelenHavale:
                        case EvrakTipleri.AlisFaturasi:
                            dizi = CharEvrakTip(tip);
                            cmd.CommandText = string.Format("exec sp_executesql N'SELECT     ISNULL(MAX(cha_evrakno_sira),0) + 1 FROM         CARI_HESAP_HAREKETLERI WITH (NOLOCK) WHERE     (cha_tip = {1}) AND (cha_normal_Iade = {2}) AND (cha_evrak_tip = {3}) AND (cha_evrakno_seri = ''{0}'')'", seri, dizi[0], dizi[2], dizi[3]);
                            break;
                        //case EvrakTipleri.AlinanSiparis:
                        //    cmd.CommandText = string.Format("exec sp_executesql N'SELECT     ISNULL(MAX(sip_evrakno_sira),0) + 1 FROM         SIPARISLER WITH (NOLOCK) WHERE     (sip_tip = 0) AND (sip_cins = 0) AND (sip_evrakno_seri = ''{0}'')'", seri);
                        //    break;
                        //case EvrakTipleri.VerilenSiparis:
                        //    cmd.CommandText = string.Format("exec sp_executesql N'SELECT     ISNULL(MAX(sip_evrakno_sira),0) + 1 FROM         SIPARISLER WITH (NOLOCK) WHERE     (sip_tip = 1) AND (sip_cins = 0) AND (sip_evrakno_seri = ''{0}'')'", seri);
                        //    break;
                        case EvrakTipleri.DepoSevk:
                            dizi = SharEvrakTip(tip);
                            cmd.CommandText = string.Format("exec sp_executesql N'SELECT     ISNULL(MAX(sth_evrakno_sira),0) + 1 as sira  FROM         STOK_HAREKETLERI WITH (NOLOCK, INDEX=NDX_STOK_HAREKETLERI_05) WHERE     (sth_tip = 2) AND (sth_evraktip = 2) AND (sth_evrakno_seri = ''{0}'')'", seri);
                            break;
                        case EvrakTipleri.AlisIrsaliyesi:
                            dizi = SharEvrakTip(tip);
                            cmd.CommandText = string.Format("exec sp_executesql N'SELECT     ISNULL(MAX(sth_evrakno_sira),0) + 1 as sira  FROM         STOK_HAREKETLERI WITH (NOLOCK, INDEX=NDX_STOK_HAREKETLERI_05) WHERE  (sth_evraktip = {1}) AND (sth_evrakno_seri = ''{0}'')'", seri, dizi[3]);
                            break;
                    }

                    sira = Convert.ToInt32(cmd.ExecuteScalar());
                }
                cn.Close();
            }
            return sira;
        }
        private bool CheckEvrakNo(EvrakTipleri tip, String seri, int sira)
        {
            byte[] dizi;
            bool evrakVar = false;
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("", cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    switch (tip)
                    {
                        case EvrakTipleri.SatisFaturasi:
                        case EvrakTipleri.GidenHavale:
                        case EvrakTipleri.GelenHavale:
                        case EvrakTipleri.AlisFaturasi:
                            dizi = CharEvrakTip(tip);
                            cmd.CommandText = string.Format("exec sp_executesql N'SELECT     COUNT(*) FROM         CARI_HESAP_HAREKETLERI WITH (NOLOCK) WHERE     (cha_tip = {1}) AND (cha_normal_Iade = {2}) AND (cha_evrak_tip = {3}) AND (cha_evrakno_seri = ''{0}'') AND (cha_evrakno_sira={4})'", seri, dizi[0], dizi[2], dizi[3], sira);
                            break;
                        //case EvrakTipleri.AlinanSiparis:
                        //    cmd.CommandText = string.Format("exec sp_executesql N'SELECT     COUNT(*) FROM         SIPARISLER WITH (NOLOCK) WHERE     (sip_tip = 0) AND (sip_cins = 0) AND (sip_evrakno_seri = ''{0}'') AND (sip_evrakno_sira={1})'", seri, sira);
                        //    break;
                        //case EvrakTipleri.VerilenSiparis:
                        //    cmd.CommandText = string.Format("exec sp_executesql N'SELECT     COUNT(*) FROM         SIPARISLER WITH (NOLOCK) WHERE     (sip_tip = 1) AND (sip_cins = 0) AND (sip_evrakno_seri = ''{0}'')  AND (sip_evrakno_sira={1})'", seri, sira);
                        //    break;
                        case EvrakTipleri.DepoSevk:
                            dizi = SharEvrakTip(tip);
                            cmd.CommandText = string.Format("exec sp_executesql N'SELECT     COUNT(*)  FROM         STOK_HAREKETLERI WITH (NOLOCK, INDEX=NDX_STOK_HAREKETLERI_05) WHERE     (sth_tip = 2) AND (sth_evraktip = 2) AND (sth_evrakno_seri = ''{0}'') AND (sth_evrakno_sira={1})'", seri, sira);
                            break;
                        case EvrakTipleri.AlisIrsaliyesi:
                            dizi = SharEvrakTip(tip);
                            cmd.CommandText = string.Format("exec sp_executesql N'SELECT     COUNT(*)  FROM         STOK_HAREKETLERI WITH (NOLOCK, INDEX=NDX_STOK_HAREKETLERI_05) WHERE  (sth_evraktip = {1}) AND (sth_evrakno_seri = ''{0}'') AND (sth_evrakno_sira={2})'", seri, dizi[3], sira);
                            break;
                    }

                    evrakVar = Convert.ToBoolean(cmd.ExecuteScalar());
                }
                cn.Close();
            }
            return evrakVar;
        }
        private Dictionary<int, int> KdvList(string cnnString)
        {
            Dictionary<int, int> sonuc = new Dictionary<int, int>();
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlDataAdapter adp = new SqlDataAdapter("select dbo.fn_VergiYuzde(1) as oran union all select dbo.fn_VergiYuzde(2) union all select dbo.fn_VergiYuzde(3) union all select dbo.fn_VergiYuzde(4) union all select dbo.fn_VergiYuzde(5) union all select dbo.fn_VergiYuzde(6)", cn))
                {
                    adp.SelectCommand.CommandTimeout = int.MaxValue;
                    DataTable dt = new DataTable();
                    adp.Fill(dt);
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        sonuc.Add(i + 1, Convert.ToInt32(dt.Rows[i][0]));
                    }
                }
                cn.Close();
            }
            return sonuc;
        }
        private bool SharEkle(Evrak evrak, SqlTransaction trn)
        {
            bool sonuc = false;
            StringBuilder sb = new StringBuilder();
            sb.Append(" if exists(SELECT     sth_evrakno_seri  FROM         STOK_HAREKETLERI  WHERE     (sth_evrakno_seri = @Seri) AND (sth_evrakno_sira =@Sira) AND (sth_satirno = @Satir) AND (sth_evraktip = @Evrak_Tip) AND (sth_tip=@Tip) AND (sth_cins=@Cins) and (sth_normal_iade=@Normal_iade)) ");
            sb.Append(" 		UPDATE STOK_HAREKETLERI SET ");
            sb.Append(" 							  sth_lastup_user=@kullanici, sth_lastup_date=@crDate, sth_tarih=@Evrak_Tarih, sth_tip=@Tip, sth_cins=@Cins, sth_normal_iade=@Normal_iade, sth_belge_tarih=@Evrak_Tarih,  ");
            sb.Append(" 							  sth_stok_kod=@Stok_kod, sth_cari_kodu=@Cari_kod, sth_plasiyer_kodu=@plasiyer, sth_kur_tarihi='1899-12-30 00:00:00', sth_miktar=@Miktar, sth_miktar2=@Miktar, sth_birim_pntr=1, sth_tutar=@yekun, sth_iskonto1=@isk1_tutar, sth_iskonto2=@isk2_tutar, sth_iskonto3=@isk3_tutar,  ");
            sb.Append(" 							  sth_iskonto4=@isk4_tutar, sth_iskonto5=@isk5_tutar, sth_vergi_pntr=@Kdv,sth_vergi=@kdv_tutar, sth_odeme_op=@odeme, sth_sip_recid_dbcno=@norm_sip_dbc, sth_sip_recid_recno=@norm_sip_rec,sth_fat_recid_dbcno=0,sth_fat_recid_recno=@fat_rec_no, sth_giris_depo_no=@GirisDepo, sth_cikis_depo_no=@CikisDepo,  ");
            sb.Append(" 							  sth_malkbl_sevk_tarihi=@Evrak_Tarih, sth_cari_srm_merkezi=@srmerkez, sth_stok_srm_merkezi=@srmerkez, sth_fis_tarihi='1899-12-30 00:00:00', sth_maliyet_ana=@Fiyat, sth_maliyet_alternatif=@Fiyat, sth_maliyet_orjinal=@Fiyat, sth_vardiya_tarihi='1899-12-30 00:00:00',sth_subesip_recid_dbcno=@sube_sip_dbc,sth_subesip_recid_recno=@sube_sip_rec,sth_belge_no=@belge_no, ");
            sb.Append(" 							  sth_firmano=@firma_no,sth_subeno=@sube_no,sth_proje_kodu=@proje ");
            sb.Append(" 		WHERE     (sth_evrakno_seri = @Seri) AND (sth_evrakno_sira =@Sira) AND (sth_satirno = @Satir) AND (sth_evraktip = @Evrak_Tip AND (sth_tip=@Tip) AND (sth_cins=@Cins) and (sth_normal_iade=@Normal_iade)) ");
            sb.Append(" else ");
            sb.Append(" 		INSERT INTO STOK_HAREKETLERI ");
            sb.Append(" 		 (sth_RECid_DBCno,sth_RECid_RECno,sth_SpecRECno,sth_iptal,sth_fileid,sth_hidden,sth_kilitli,sth_degisti,sth_checksum,sth_create_user,sth_create_date,sth_lastup_user,sth_lastup_date,sth_special1,sth_special2,sth_special3,sth_firmano,sth_subeno,sth_tarih,sth_tip,sth_cins,sth_normal_iade,sth_evraktip,sth_evrakno_seri,sth_evrakno_sira,sth_satirno,sth_belge_no,sth_belge_tarih,sth_stok_kod,sth_isk_mas1,sth_isk_mas2,sth_isk_mas3,sth_isk_mas4,sth_isk_mas5,sth_isk_mas6,sth_isk_mas7,sth_isk_mas8,sth_isk_mas9,sth_isk_mas10,sth_sat_iskmas1,sth_sat_iskmas2,sth_sat_iskmas3,sth_sat_iskmas4,sth_sat_iskmas5,sth_sat_iskmas6,sth_sat_iskmas7,sth_sat_iskmas8,sth_sat_iskmas9,sth_sat_iskmas10,sth_pos_satis,sth_cari_cinsi,sth_cari_kodu,sth_cari_grup_no,sth_isemri_gider_kodu,sth_ismerkezi_kodu,sth_plasiyer_kodu,sth_kur_tarihi,sth_har_doviz_cinsi,sth_har_doviz_kuru,sth_alt_doviz_kuru,sth_stok_doviz_cinsi,sth_stok_doviz_kuru,sth_miktar,sth_miktar2,sth_birim_pntr,sth_tutar,sth_iskonto1,sth_iskonto2,sth_iskonto3,sth_iskonto4,sth_iskonto5,sth_iskonto6,sth_masraf1,sth_masraf2,sth_masraf3,sth_masraf4,sth_vergi_pntr,sth_vergi,sth_masraf_vergi_pntr,sth_masraf_vergi,sth_netagirlik,sth_odeme_op,sth_aciklama,sth_sip_recid_dbcno,sth_sip_recid_recno,sth_fat_recid_dbcno,sth_fat_recid_recno,sth_giris_depo_no,sth_cikis_depo_no,sth_malkbl_sevk_tarihi,sth_cari_srm_merkezi,sth_stok_srm_merkezi,sth_fis_tarihi,sth_fis_sirano,sth_vergisiz_fl,sth_maliyet_ana,sth_maliyet_alternatif,sth_maliyet_orjinal,sth_adres_no,sth_parti_kodu,sth_lot_no,sth_kons_recid_dbcno,sth_kons_recid_recno,sth_vardiya_tarihi,sth_vardiya_no,sth_satistipi,sth_proje_kodu,sth_ihracat_kredi_kodu,sth_exim_kodu,sth_otv_pntr,sth_otv_vergi,sth_bkm_recid_dbcno,sth_bkm_recid_recno,sth_karsikons_recid_dbcno,sth_karsikons_recid_recno,sth_iade_evrak_seri,sth_iade_evrak_sira,sth_diib_belge_no,sth_diib_satir_no,sth_mensey_ulke_tipi,sth_mensey_ulke_kodu,sth_brutagirlik,sth_halrehmiktari,sth_halrehfiyati,sth_halsandikmiktari,sth_halsandikfiyati,sth_halsandikkdvtutari,sth_disticaret_turu,sth_otvtutari,sth_otvvergisiz_fl,sth_direkt_iscilik_1,sth_direkt_iscilik_2,sth_direkt_iscilik_3,sth_direkt_iscilik_4,sth_direkt_iscilik_5,sth_genel_uretim_1,sth_genel_uretim_2,sth_genel_uretim_3,sth_genel_uretim_4,sth_genel_uretim_5,sth_yat_tes_kodu,sth_oiv_pntr,sth_oiv_vergi,sth_oivvergisiz_fl,sth_subesip_recid_dbcno,sth_subesip_recid_recno) ");
            sb.Append(" 		VALUES (0,-2,0,0,16,0,0,0,0,@kullanici,@crDate,@kullanici,@crDate,'','','',@firma_no,@sube_no,@Evrak_Tarih,@Tip,@Cins,@Normal_iade,@Evrak_Tip,@Seri,@Sira,@Satir,@belge_no,@Evrak_Tarih,@Stok_kod,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,@Cari_kod,0,'','',@plasiyer,'1899-12-30 00:00:00',0,1,1,0,1, @Miktar  , @Miktar  ,1, @yekun   ,@isk1_tutar,@isk2_tutar,@isk3_tutar,@isk4_tutar,@isk5_tutar,0,0,0,0,0,@Kdv,@kdv_tutar,0,0,0,@odeme,'',@norm_sip_dbc,@norm_sip_rec,0,@fat_rec_no,@GirisDepo,@CikisDepo,@Evrak_Tarih,@srmerkez,@srmerkez, '1899-12-30 00:00:00',0,0, @Fiyat  , @Fiyat  , @Fiyat  ,1,'',0,0,0,'1899-12-30 00:00:00',0,0,@proje,'','',0,0,0,0,0,0,'',0,'',0,0,'',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'',0,0,0,@sube_sip_dbc,@sube_sip_rec) ");
            sb.Append(";update STOK_HAREKETLERI set sth_RECid_RECno=sth_RECno where sth_RECid_RECno=-2");

            DateTime defaultTarih = new DateTime(1899, 12, 31);
            try
            {
                using (SqlCommand cmd = new SqlCommand("", trn.Connection))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    cmd.Transaction = trn;
                    byte[] tipCins = SharEvrakTip(evrak.EvrakCinsi);
                    cmd.CommandText = sb.ToString();

                    cmd.Parameters.Add("@Tip", SqlDbType.Int);
                    cmd.Parameters.Add("@Cins", SqlDbType.Int);
                    cmd.Parameters.Add("@Normal_iade", SqlDbType.Int);
                    cmd.Parameters.Add("@Evrak_Tip", SqlDbType.Int);
                    cmd.Parameters.Add("@Evrak_Tarih", SqlDbType.DateTime);
                    cmd.Parameters.Add("@Seri", SqlDbType.VarChar);
                    cmd.Parameters.Add("@Sira", SqlDbType.Int);
                    cmd.Parameters.Add("@crDate", SqlDbType.DateTime);
                    cmd.Parameters.Add("@Cari_kod", SqlDbType.VarChar);
                    cmd.Parameters.Add("@plasiyer", SqlDbType.VarChar);
                    cmd.Parameters.Add("@srmerkez", SqlDbType.VarChar);
                    cmd.Parameters.Add("@kullanici", SqlDbType.VarChar);
                    cmd.Parameters.Add("@GirisDepo", SqlDbType.Int);
                    cmd.Parameters.Add("@CikisDepo", SqlDbType.Int);
                    cmd.Parameters.Add("@odeme", SqlDbType.Int);
                    cmd.Parameters.Add("@belge_no", SqlDbType.VarChar);
                    cmd.Parameters.Add("@firma_no", SqlDbType.Int);
                    cmd.Parameters.Add("@sube_no", SqlDbType.Int);
                    cmd.Parameters.Add("@proje", SqlDbType.VarChar);
                    cmd.Parameters.Add("@Satir", SqlDbType.Int);
                    cmd.Parameters.Add("@Stok_kod", SqlDbType.VarChar);
                    cmd.Parameters.Add("@Miktar", SqlDbType.Float);
                    cmd.Parameters.Add("@yekun", SqlDbType.Float);
                    cmd.Parameters.Add("@isk1_tutar", SqlDbType.Float);
                    cmd.Parameters.Add("@isk2_tutar", SqlDbType.Float);
                    cmd.Parameters.Add("@isk3_tutar", SqlDbType.Float);
                    cmd.Parameters.Add("@isk4_tutar", SqlDbType.Float);
                    cmd.Parameters.Add("@isk5_tutar", SqlDbType.Float);
                    cmd.Parameters.Add("@Kdv", SqlDbType.Int);
                    cmd.Parameters.Add("@sube_sip_rec", SqlDbType.Int);
                    cmd.Parameters.Add("@sube_sip_dbc", SqlDbType.Int);
                    cmd.Parameters.Add("@norm_sip_rec", SqlDbType.Int);
                    cmd.Parameters.Add("@norm_sip_dbc", SqlDbType.Int);
                    cmd.Parameters.Add("@Fiyat", SqlDbType.Float);
                    cmd.Parameters.Add("@kdv_tutar", SqlDbType.Float);
                    cmd.Parameters.Add("@fat_rec_no", SqlDbType.Int);

                    foreach (HareketBilgileri row in evrak.Rows)
                    {
                        cmd.Parameters["@Tip"].Value = tipCins[0];
                        cmd.Parameters["@Cins"].Value = tipCins[1];
                        cmd.Parameters["@Normal_iade"].Value = tipCins[2];
                        cmd.Parameters["@Evrak_Tip"].Value = tipCins[3];
                        cmd.Parameters["@Evrak_Tarih"].Value = new DateTime(evrak.Tarih.Year, evrak.Tarih.Month, evrak.Tarih.Day);
                        cmd.Parameters["@Seri"].Value = evrak.Seri;
                        cmd.Parameters["@Sira"].Value = evrak.Sira;
                        cmd.Parameters["@crDate"].Value = DateTime.Now;
                        cmd.Parameters["@Cari_kod"].Value = evrak.CariKodu;
                        cmd.Parameters["@plasiyer"].Value = evrak.PlasiyerKodu;
                        cmd.Parameters["@srmerkez"].Value = evrak.SrmMerkezKodu;
                        cmd.Parameters["@kullanici"].Value = evrak.MikroKullanici;
                        cmd.Parameters["@GirisDepo"].Value = evrak.GirisDepoNo;
                        cmd.Parameters["@CikisDepo"].Value = evrak.CikisDepoNo;
                        cmd.Parameters["@odeme"].Value = 0; //odeme * (-1));
                        cmd.Parameters["@belge_no"].Value = evrak.BelgeNo;
                        cmd.Parameters["@firma_no"].Value = 0;
                        cmd.Parameters["@sube_no"].Value = 0;
                        cmd.Parameters["@proje"].Value = "";
                        cmd.Parameters["@Satir"].Value = row.Satir;
                        cmd.Parameters["@Stok_kod"].Value = row.StokKodu;
                        cmd.Parameters["@Miktar"].Value = row.Miktar;
                        cmd.Parameters["@yekun"].Value = row.BurutTutar;
                        cmd.Parameters["@isk1_tutar"].Value = row.Isk1Tutar;
                        cmd.Parameters["@isk2_tutar"].Value = row.Isk2Tutar;
                        cmd.Parameters["@isk3_tutar"].Value = row.Isk3Tutar;
                        cmd.Parameters["@isk4_tutar"].Value = row.Isk4Tutar;
                        cmd.Parameters["@isk5_tutar"].Value = row.Isk5Tutar;
                        cmd.Parameters["@Kdv"].Value = row.KdvSira;

                        if (evrak.EvrakCinsi == EvrakTipleri.DepoSevk)
                        {
                            cmd.Parameters["@sube_sip_rec"].Value = row.SipRecNo;
                            cmd.Parameters["@sube_sip_dbc"].Value = row.SipDbcNo;
                            cmd.Parameters["@norm_sip_rec"].Value = 0;
                            cmd.Parameters["@norm_sip_dbc"].Value = 0;
                        }
                        else
                        {
                            cmd.Parameters["@sube_sip_rec"].Value = 0;
                            cmd.Parameters["@sube_sip_dbc"].Value = 0;
                            cmd.Parameters["@norm_sip_rec"].Value = row.SipRecNo;
                            cmd.Parameters["@norm_sip_dbc"].Value = row.SipDbcNo;
                        }

                        cmd.Parameters["@Fiyat"].Value = row.Fiyat;
                        cmd.Parameters["@kdv_tutar"].Value = row.KdvTutari;
                        cmd.Parameters["@fat_rec_no"].Value = row.FaturaID;

                        cmd.ExecuteNonQuery();
                    }
                }
                sonuc = true;
            }
            catch (Exception)
            {
            }
            return sonuc;
        }
        private int CharEkle(EvrakTipleri tip, string evrakSeri, int evrakSira, int satir, DateTime evrakTarihi, double meblag, double[] vergiler, string saticiKodu, string cariKodu, double araToplam, string belgeNo, int vade, string aciklama, double isk1Tutar, double isk2Tutar, double isk3Tutar, int cariCins, string kasaKodu, string srmMerkezi, string projeKodu, int kdvSira, SqlTransaction trn)
        {
            string sqlStr = "if exists(SELECT     cha_RECno FROM         CARI_HESAP_HAREKETLERI WHERE     (cha_evrak_tip = @cha_evrak_tip) AND (cha_evrakno_seri = @cha_evrakno_seri) AND (cha_evrakno_sira = @cha_evrakno_sira) AND (cha_satir_no = @cha_satir_no)) delete FROM CARI_HESAP_HAREKETLERI WHERE     (cha_evrak_tip = @cha_evrak_tip) AND (cha_evrakno_seri = @cha_evrakno_seri) AND (cha_evrakno_sira = @cha_evrakno_sira) AND (cha_satir_no = @cha_satir_no);insert into CARI_HESAP_HAREKETLERI (cha_RECid_DBCno,cha_RECid_RECno,cha_SpecRecNo,cha_iptal,cha_fileid,cha_hidden,cha_kilitli,cha_degisti,cha_CheckSum,cha_create_user,cha_create_date,cha_lastup_user,cha_lastup_date,cha_special1,cha_special2,cha_special3,cha_firmano,cha_subeno,cha_tarihi,cha_tip,cha_cinsi,cha_normal_Iade,cha_evrak_tip,cha_satir_no,cha_evrakno_seri,cha_evrakno_sira,cha_belge_no,cha_belge_tarih,cha_cari_cins,cha_kod,cha_kasa_hizmet,cha_kasa_hizkod,cha_d_kurtar,cha_d_cins,cha_d_kur,cha_altd_kur,cha_grupno,cha_meblag,cha_vade,cha_fis_tarih,cha_fis_sirano,cha_ft_iskonto1,cha_ft_iskonto2,cha_ft_iskonto3,cha_ft_iskonto4,cha_ft_iskonto5,cha_ft_iskonto6,cha_ft_masraf1,cha_ft_masraf2,cha_ft_masraf3,cha_ft_masraf4,cha_vergi1,cha_vergi2,cha_vergi3,cha_vergi4,cha_vergi5,cha_vergi6,cha_vergi7,cha_vergi8,cha_vergi9,cha_vergi10,cha_yuvarlama,cha_tpoz,cha_aciklama,cha_trefno,cha_sntck_poz,cha_karsidcinsi,cha_karsid_kur,cha_karsidgrupno,cha_srmrkkodu,cha_reftarihi,cha_odeme_arr1,cha_odeme_arr2,cha_odeme_arr3,cha_odeme_arr4,cha_odeme_arr5,cha_odeme_arr6,cha_odeme_arr7,cha_odeme_arr8,cha_miktari,cha_aratoplam,cha_vergipntr,cha_istisnakodu,cha_ver_tev_carpani,cha_stopaj,cha_savsandesfonu,cha_vergisiz_fl,cha_satici_kodu,cha_mustahsil_borsa,cha_mustahsil_bagkur,cha_mustahsil_diger,cha_HalMSDF,cha_HalHamaliye,cha_HalStopaj,cha_HalKomisyonu,cha_StFonPntr,cha_pos_hareketi,cha_vardiya_tarihi,cha_vardiya_no,cha_vardiya_evrak_ti,cha_HalRusum,cha_HalNavlunTut,cha_HalRehinFuture,cha_HalKomisyon,cha_Vade_Farki_Yuz,cha_karsisrmrkkodu,cha_EXIMkodu,cha_HalRehinSandikmiktari,cha_HalSandikVrMiktar,cha_HalSandikTutari,cha_HalSandikKDVTutari,cha_HalrehinSandikTutari,cha_Tevkifat_turu,cha_ticaret_turu,cha_otvtutari,cha_otvvergisiz_fl,cha_projekodu,cha_sozlesme_DBCno,cha_sozlesme_RECno,cha_yat_tes_kodu,cha_ciro_cari_kodu,cha_oivergisiz_fl,cha_meblag_ana_doviz_icin_gecersiz_fl,cha_meblag_alt_doviz_icin_gecersiz_fl,cha_meblag_orj_doviz_icin_gecersiz_fl,cha_ciroprim_DBCno,cha_ciroprim_RECno,cha_HalHamaliyeKdv,cha_HalHamaliyeVergisiz_fl) values (@cha_RECid_DBCno,@cha_RECid_RECno,@cha_SpecRecNo,@cha_iptal,@cha_fileid,@cha_hidden,@cha_kilitli,@cha_degisti,@cha_CheckSum,@cha_create_user,@cha_create_date,@cha_lastup_user,@cha_lastup_date,@cha_special1,@cha_special2,@cha_special3,@cha_firmano,@cha_subeno,@cha_tarihi,@cha_tip,@cha_cinsi,@cha_normal_Iade,@cha_evrak_tip,@cha_satir_no,@cha_evrakno_seri,@cha_evrakno_sira,@cha_belge_no,@cha_belge_tarih,@cha_cari_cins,@cha_kod,@cha_kasa_hizmet,@cha_kasa_hizkod,@cha_d_kurtar,@cha_d_cins,@cha_d_kur,@cha_altd_kur,@cha_grupno,@cha_meblag,@cha_vade,@cha_fis_tarih,@cha_fis_sirano,@cha_ft_iskonto1,@cha_ft_iskonto2,@cha_ft_iskonto3,@cha_ft_iskonto4,@cha_ft_iskonto5,@cha_ft_iskonto6,@cha_ft_masraf1,@cha_ft_masraf2,@cha_ft_masraf3,@cha_ft_masraf4,@cha_vergi1,@cha_vergi2,@cha_vergi3,@cha_vergi4,@cha_vergi5,@cha_vergi6,@cha_vergi7,@cha_vergi8,@cha_vergi9,@cha_vergi10,@cha_yuvarlama,@cha_tpoz,@cha_aciklama,@cha_trefno,@cha_sntck_poz,@cha_karsidcinsi,@cha_karsid_kur,@cha_karsidgrupno,@cha_srmrkkodu,@cha_reftarihi,@cha_odeme_arr1,@cha_odeme_arr2,@cha_odeme_arr3,@cha_odeme_arr4,@cha_odeme_arr5,@cha_odeme_arr6,@cha_odeme_arr7,@cha_odeme_arr8,@cha_miktari,@cha_aratoplam,@cha_vergipntr,@cha_istisnakodu,@cha_ver_tev_carpani,@cha_stopaj,@cha_savsandesfonu,@cha_vergisiz_fl,@cha_satici_kodu,@cha_mustahsil_borsa,@cha_mustahsil_bagkur,@cha_mustahsil_diger,@cha_HalMSDF,@cha_HalHamaliye,@cha_HalStopaj,@cha_HalKomisyonu,@cha_StFonPntr,@cha_pos_hareketi,@cha_vardiya_tarihi,@cha_vardiya_no,@cha_vardiya_evrak_ti,@cha_HalRusum,@cha_HalNavlunTut,@cha_HalRehinFuture,@cha_HalKomisyon,@cha_Vade_Farki_Yuz,@cha_karsisrmrkkodu,@cha_EXIMkodu,@cha_HalRehinSandikmiktari,@cha_HalSandikVrMiktar,@cha_HalSandikTutari,@cha_HalSandikKDVTutari,@cha_HalrehinSandikTutari,@cha_Tevkifat_turu,@cha_ticaret_turu,@cha_otvtutari,@cha_otvvergisiz_fl,@cha_projekodu,@cha_sozlesme_DBCno,@cha_sozlesme_RECno,@cha_yat_tes_kodu,@cha_ciro_cari_kodu,@cha_oivergisiz_fl,@cha_meblag_ana_doviz_icin_gecersiz_fl,@cha_meblag_alt_doviz_icin_gecersiz_fl,@cha_meblag_orj_doviz_icin_gecersiz_fl,@cha_ciroprim_DBCno,@cha_ciroprim_RECno,@cha_HalHamaliyeKdv,@cha_HalHamaliyeVergisiz_fl);UPDATE CARI_HESAP_HAREKETLERI SET cha_RECid_RECno=cha_RECno WHERE cha_RECno=-2;SELECT SCOPE_IDENTITY()";
            List<SqlParameter> prmList = new List<SqlParameter>();
            byte[] tipler = CharEvrakTip(tip);

            prmList.Add(new SqlParameter() { ParameterName = "@cha_RECid_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_RECid_RECno", SqlDbType = SqlDbType.Int, Value = -2 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_SpecRecNo", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_iptal", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_fileid", SqlDbType = SqlDbType.SmallInt, Value = 51 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_hidden", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_kilitli", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_degisti", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_CheckSum", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_create_user", SqlDbType = SqlDbType.SmallInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_create_date", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_lastup_user", SqlDbType = SqlDbType.SmallInt, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_lastup_date", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_special1", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_special2", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_special3", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_firmano", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_subeno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_tarihi", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[0] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_cinsi", SqlDbType = SqlDbType.TinyInt, Value = tipler[1] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_normal_Iade", SqlDbType = SqlDbType.TinyInt, Value = tipler[2] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_evrak_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[3] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_satir_no", SqlDbType = SqlDbType.Int, Value = satir });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_evrakno_seri", SqlDbType = SqlDbType.NVarChar, Value = evrakSeri });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_evrakno_sira", SqlDbType = SqlDbType.Int, Value = evrakSira });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_belge_no", SqlDbType = SqlDbType.NVarChar, Value = belgeNo });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_belge_tarih", SqlDbType = SqlDbType.DateTime, Value = evrakTarihi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_cari_cins", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_kod", SqlDbType = SqlDbType.NVarChar, Value = cariKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_kasa_hizmet", SqlDbType = SqlDbType.TinyInt, Value = 3 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_kasa_hizkod", SqlDbType = SqlDbType.NVarChar, Value = kasaKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_d_kurtar", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_d_cins", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_d_kur", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_altd_kur", SqlDbType = SqlDbType.Float, Value = 1 });

            if (cariCins == 2)
            {
                prmList.Add(new SqlParameter() { ParameterName = "@cha_grupno", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            }
            else
            {
                prmList.Add(new SqlParameter() { ParameterName = "@cha_grupno", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            }

            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag", SqlDbType = SqlDbType.Float, Value = meblag });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vade", SqlDbType = SqlDbType.Int, Value = vade });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_fis_tarih", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_fis_sirano", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto1", SqlDbType = SqlDbType.Float, Value = isk1Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto2", SqlDbType = SqlDbType.Float, Value = isk2Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto3", SqlDbType = SqlDbType.Float, Value = isk3Tutar });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_iskonto6", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ft_masraf4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi1", SqlDbType = SqlDbType.Float, Value = vergiler[0] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi2", SqlDbType = SqlDbType.Float, Value = vergiler[1] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi3", SqlDbType = SqlDbType.Float, Value = vergiler[2] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi4", SqlDbType = SqlDbType.Float, Value = vergiler[3] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi5", SqlDbType = SqlDbType.Float, Value = vergiler[4] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi6", SqlDbType = SqlDbType.Float, Value = vergiler[5] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi7", SqlDbType = SqlDbType.Float, Value = vergiler[6] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi8", SqlDbType = SqlDbType.Float, Value = vergiler[7] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi9", SqlDbType = SqlDbType.Float, Value = vergiler[8] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergi10", SqlDbType = SqlDbType.Float, Value = vergiler[9] });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_yuvarlama", SqlDbType = SqlDbType.Float, Value = 0 });

            if (cariCins == 4)
                prmList.Add(new SqlParameter() { ParameterName = "@cha_tpoz", SqlDbType = SqlDbType.TinyInt, Value = 1 });
            else
                prmList.Add(new SqlParameter() { ParameterName = "@cha_tpoz", SqlDbType = SqlDbType.TinyInt, Value = 0 });

            prmList.Add(new SqlParameter() { ParameterName = "@cha_aciklama", SqlDbType = SqlDbType.NVarChar, Value = aciklama });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_trefno", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_sntck_poz", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsidcinsi", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsid_kur", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsidgrupno", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_srmrkkodu", SqlDbType = SqlDbType.NVarChar, Value = srmMerkezi });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_reftarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr1", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr2", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr3", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr4", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr5", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr6", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr7", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_odeme_arr8", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_miktari", SqlDbType = SqlDbType.Float, Value = 1 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_aratoplam", SqlDbType = SqlDbType.Float, Value = araToplam });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergipntr", SqlDbType = SqlDbType.TinyInt, Value = kdvSira });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_istisnakodu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ver_tev_carpani", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_stopaj", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_savsandesfonu", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_satici_kodu", SqlDbType = SqlDbType.NVarChar, Value = saticiKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_mustahsil_borsa", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_mustahsil_bagkur", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_mustahsil_diger", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalMSDF", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalHamaliye", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalStopaj", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalKomisyonu", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_StFonPntr", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_pos_hareketi", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vardiya_tarihi", SqlDbType = SqlDbType.DateTime, Value = "1899-12-30 00:00:00" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vardiya_no", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_vardiya_evrak_ti", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalRusum", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalNavlunTut", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalRehinFuture", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalKomisyon", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_Vade_Farki_Yuz", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_karsisrmrkkodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_EXIMkodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalRehinSandikmiktari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalSandikVrMiktar", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalSandikTutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalSandikKDVTutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalrehinSandikTutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_Tevkifat_turu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ticaret_turu", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_otvtutari", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_otvvergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_projekodu", SqlDbType = SqlDbType.NVarChar, Value = projeKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_sozlesme_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_sozlesme_RECno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_yat_tes_kodu", SqlDbType = SqlDbType.NVarChar, Value = "" });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ciro_cari_kodu", SqlDbType = SqlDbType.NVarChar, Value = cariKodu });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_oivergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag_ana_doviz_icin_gecersiz_fl", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag_alt_doviz_icin_gecersiz_fl", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_meblag_orj_doviz_icin_gecersiz_fl", SqlDbType = SqlDbType.TinyInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ciroprim_DBCno", SqlDbType = SqlDbType.SmallInt, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_ciroprim_RECno", SqlDbType = SqlDbType.Int, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalHamaliyeKdv", SqlDbType = SqlDbType.Float, Value = 0 });
            prmList.Add(new SqlParameter() { ParameterName = "@cha_HalHamaliyeVergisiz_fl", SqlDbType = SqlDbType.Bit, Value = false });

            int sonuc = -1;

            using (SqlCommand cmd = new SqlCommand(sqlStr, trn.Connection))
            {
                cmd.CommandTimeout = int.MaxValue;
                cmd.Transaction = trn;
                foreach (var item in prmList)
                {
                    cmd.Parameters.Add(item);
                }
                object recid = cmd.ExecuteScalar();
                if (recid != null)
                {
                    cmd.Parameters.Clear();
                    cmd.CommandText = string.Format("UPDATE CARI_HESAP_HAREKETLERI SET cha_RECid_RECno=cha_RECno WHERE cha_RECno={0}", recid.ToString());
                    cmd.ExecuteNonQuery();
                    sonuc = Convert.ToInt32(recid);
                }
            }
            return sonuc;
        }

        private void AciklamaEkle(string seri, int sira, string[] aciklamalar, SqlTransaction trn)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("if exists(select * from EVRAK_ACIKLAMALARI  WHERE          (egk_evr_seri = @seri) and (egk_evr_sira=@sira)) delete from EVRAK_ACIKLAMALARI  WHERE     (egk_evr_seri = @seri) and (egk_evr_sira=@sira); ");
            sb.Append(" INSERT INTO EVRAK_ACIKLAMALARI ");
            sb.Append("                      (egk_RECid_DBCno, egk_RECid_RECno, egk_SpecRECno, egk_iptal, egk_fileid, egk_hidden, egk_kilitli, egk_degisti, egk_checksum, egk_create_user, egk_create_date, egk_lastup_user, ");
            sb.Append("                      egk_lastup_date, egk_special1, egk_special2, egk_special3, egk_dosyano, egk_hareket_tip, egk_evr_tip, egk_evr_seri, egk_evr_sira, egk_evr_ustkod, egk_evr_doksayisi, egk_evracik1, ");
            sb.Append("                      egk_evracik2, egk_evracik3, egk_evracik4, egk_evracik5, egk_evracik6, egk_evracik7, egk_evracik8, egk_evracik9, egk_evracik10, egk_sipgenkarorani, egk_kargokodu, egk_kargono, ");
            sb.Append("                      egk_tesaltarihi, egk_tesalkisi) ");
            sb.Append(" VALUES     (0, -1, 0, 0, 66, 0, 0, 0, 0, 0, @tarih, 0, @tarih, N'', N'', N'', 51, 0, 63,@seri,@sira, N'',0,@acik1,@acik2,@acik3,@acik4,@acik5, N'', N'', N'', N'', N'', 0, N'', N'','1899-12-30', N'') ");
            sb.Append(";update EVRAK_ACIKLAMALARI set egk_RECid_RECno=egk_RECno where egk_RECid_RECno=-1");

            using (SqlCommand cmd = new SqlCommand(sb.ToString(), trn.Connection))
            {
                cmd.CommandTimeout = int.MaxValue;
                cmd.Transaction = trn;
                cmd.Parameters.Add("@seri", SqlDbType.NVarChar).Value = seri;
                cmd.Parameters.Add("@sira", SqlDbType.Int).Value = sira;
                cmd.Parameters.Add("@tarih", SqlDbType.Date).Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
                cmd.Parameters.Add("@acik1", SqlDbType.NVarChar, 127).Value = aciklamalar[0];
                cmd.Parameters.Add("@acik2", SqlDbType.NVarChar, 127).Value = aciklamalar[1];
                cmd.Parameters.Add("@acik3", SqlDbType.NVarChar, 127).Value = aciklamalar[2];
                cmd.Parameters.Add("@acik4", SqlDbType.NVarChar, 127).Value = aciklamalar[3];
                cmd.Parameters.Add("@acik5", SqlDbType.NVarChar, 127).Value = aciklamalar[4];
                cmd.ExecuteNonQuery();
            }
        }

        public bool EvrakEkle(Evrak evrak, bool eskiEvrak)
        {
            bool sonuc = false;
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                SqlTransaction trn = cn.BeginTransaction(IsolationLevel.ReadUncommitted);
                if (!eskiEvrak)
                    evrak.Sira = MaxEvrakNo(evrak.EvrakCinsi, evrak.Seri);


                double[] vergiTutarlari = new double[10]; ;
                double meblag = 0;
                double aratoplam = 0;
                double kdvTutari = 0;
                int satir = 0;
                foreach (HareketBilgileri item in evrak.Rows)
                {
                    aratoplam += item.BurutTutar;
                    kdvTutari = (item.BurutTutar / 100 * item.KdvOrani);
                    meblag += item.BurutTutar + kdvTutari;
                    vergiTutarlari[item.KdvSira] += kdvTutari;
                }
                int recID = CharEkle(evrak.EvrakCinsi, evrak.Seri, evrak.Sira, satir, evrak.Tarih, meblag, vergiTutarlari, evrak.PlasiyerKodu, evrak.CariKodu, aratoplam, evrak.BelgeNo, 0, evrak.Aciklama, 0, 0, 0, 3, "", evrak.SrmMerkezKodu, "", 0, trn);

                foreach (HareketBilgileri item in evrak.Rows)
                {
                    item.FaturaID = recID;
                    SharEkle(evrak, trn);
                }

                AciklamaEkle(evrak.Seri, evrak.Sira, evrak.EvrakAciklamalari, trn);

                try
                {
                    trn.Commit();
                    cn.Close();
                    sonuc = true;
                }
                catch (Exception)
                {
                    if (trn != null)
                        trn.Rollback();
                }
                finally
                {
                    if (cn != null && cn.State == ConnectionState.Open)
                        cn.Close();
                }
            }
            return sonuc;
        }

        public Evrak EvrakOku(string seri, int sira)
        {
            Evrak evr = new Evrak();
            evr.Seri = seri;
            evr.Sira = sira;
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT   STOK_HAREKETLERI.sth_RECno, STOKLAR.sto_kod, STOKLAR.sto_isim, STOK_HAREKETLERI.sth_miktar, STOK_HAREKETLERI.sth_tutar, STOK_HAREKETLERI.sth_vergi_pntr, ");
            sb.Append("                      dbo.fn_VergiYuzde(STOK_HAREKETLERI.sth_vergi_pntr) AS kdvorani, STOK_HAREKETLERI.sth_giris_depo_no, STOK_HAREKETLERI.sth_cikis_depo_no, ");
            sb.Append("                      STOK_HAREKETLERI.sth_cari_srm_merkezi, STOK_HAREKETLERI.sth_fat_recid_recno, STOK_HAREKETLERI.sth_vergi,STOKLAR.sto_RECno,(SELECT  top 1   cha_aciklama  FROM         CARI_HESAP_HAREKETLERI WHERE     (cha_RECno = STOK_HAREKETLERI.sth_fat_recid_recno)) as aciklama ");
            sb.Append(" FROM         STOK_HAREKETLERI INNER JOIN ");
            sb.Append("                      STOKLAR ON STOK_HAREKETLERI.sth_stok_kod = STOKLAR.sto_kod ");
            sb.Append(" WHERE     (STOK_HAREKETLERI.sth_tip = 1) AND (STOK_HAREKETLERI.sth_cins = 0) AND (STOK_HAREKETLERI.sth_normal_iade = 0) AND (STOK_HAREKETLERI.sth_evraktip = 4) AND ");
            sb.Append("                      (STOK_HAREKETLERI.sth_evrakno_seri =@seri) AND (STOK_HAREKETLERI.sth_evrakno_sira = @sira)");
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand(sb.ToString(), cn))
                {
                    cmd.CommandTimeout = int.MaxValue;
                    cmd.Parameters.Add("@seri", SqlDbType.NVarChar).Value = seri;
                    cmd.Parameters.Add("@sira", SqlDbType.Int).Value = sira;

                    SqlDataReader rd = cmd.ExecuteReader();
                    int satir = 0;
                    while (rd.Read())
                    {
                        evr.Aciklama = rd.GetString(13);

                        HareketBilgileri row = new HareketBilgileri();
                        row.sharID = rd.GetInt32(0);
                        row.StokKodu = rd.GetString(1);
                        row.StokAdi = rd.GetString(2);
                        row.Miktar = rd.GetDouble(3);
                        row.BurutTutar = rd.GetDouble(4);
                        row.KdvSira = Convert.ToInt32(rd[5]);
                        row.KdvOrani = rd.GetDouble(6);
                        evr.GirisDepoNo = rd.GetInt32(7);
                        evr.CikisDepoNo = rd.GetInt32(8);
                        evr.SrmMerkezKodu = rd.GetString(9);
                        row.FaturaID = rd.GetInt32(10);
                        row.KdvTutari = rd.GetDouble(11);
                        row.Fiyat = row.BurutTutar / row.Miktar;
                        row.KdvTutari = rd.GetDouble(11);
                        row.stokID = rd.GetInt32(12);

                        row.Satir = satir;
                        row.SipDbcNo = 0;
                        row.SipRecNo = 0;

                        evr.Rows.Add(row);
                        satir++;
                    }
                }
                cn.Close();
            }
            return evr;
        }

        public bool EvrakSil(string seri, int sira, EvrakTipleri tip)
        {
            bool sonuc = false;
            using (SqlConnection cn = new SqlConnection(cnnString))
            {
                cn.Open();
                SqlTransaction trn = cn.BeginTransaction();
                using (SqlCommand cmd = new SqlCommand("", cn))
                {
                    cmd.Transaction = trn;
                    cmd.CommandTimeout = int.MaxValue;
                    switch (tip)
                    {
                        case EvrakTipleri.SatisFaturasi:
                            byte[] tipler = CharEvrakTip(tip);
                            cmd.CommandText = "delete FROM CARI_HESAP_HAREKETLERI WHERE     (cha_evrak_tip = @cha_evrak_tip) AND (cha_evrakno_seri = @cha_evrakno_seri) AND (cha_evrakno_sira = @cha_evrakno_sira) AND (cha_satir_no = @cha_satir_no)";
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[0] });
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_cinsi", SqlDbType = SqlDbType.TinyInt, Value = tipler[1] });
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_normal_Iade", SqlDbType = SqlDbType.TinyInt, Value = tipler[2] });
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_evrak_tip", SqlDbType = SqlDbType.TinyInt, Value = tipler[3] });
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_satir_no", SqlDbType = SqlDbType.Int, Value = 0 });
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_evrakno_seri", SqlDbType = SqlDbType.NVarChar, Value = seri });
                            cmd.Parameters.Add(new SqlParameter() { ParameterName = "@cha_evrakno_sira", SqlDbType = SqlDbType.Int, Value = sira });
                            cmd.ExecuteNonQuery();
                            cmd.Parameters.Clear();

                            byte[] tipCins = SharEvrakTip(tip);
                            cmd.CommandText = "DELETE FROM         STOK_HAREKETLERI  WHERE     (sth_evrakno_seri = @Seri) AND (sth_evrakno_sira =@Sira) AND (sth_evraktip = @Evrak_Tip) AND (sth_tip=@Tip) AND (sth_cins=@Cins) and (sth_normal_iade=@Normal_iade)";
                            cmd.Parameters.Add("@Tip", SqlDbType.Int).Value = tipCins[0];
                            cmd.Parameters.Add("@Cins", SqlDbType.Int).Value = tipCins[1];
                            cmd.Parameters.Add("@Normal_iade", SqlDbType.Int).Value = tipCins[2];
                            cmd.Parameters.Add("@Evrak_Tip", SqlDbType.Int).Value = tipCins[3];
                            cmd.Parameters.Add("@Seri", SqlDbType.VarChar).Value = seri;
                            cmd.Parameters.Add("@Sira", SqlDbType.Int).Value = sira;
                            cmd.ExecuteNonQuery();
                            break;
                    }

                    try
                    {
                        trn.Commit();
                        sonuc = true;
                    }
                    catch (Exception)
                    {

                    }
                }
                cn.Close();
            }
            return sonuc;
        }
    }
}